/**
 * @author Silvia García Nimo
 * @version 2
 * 
 */

package dam_ed04_actividad;


public class CCuenta {

     /**
     * Atributos:
     * nombre titular de la cuenta
     * cuenta número de cuenta
     * saldo efectivo de la cuenta
     * tipointeres tipo de interes a aplicar
     */
    private String nombre;
    private String cuenta;
    private double saldo;
    private double tipoInterés;
    private int num_operaciones;

    
    public CCuenta()
    {
    }
     /**
     * Método constructor
     * @param nom titular de la cuenta (cadena de caracteres)
     * @param cue numero de cuenta (cadena de caracteres)
     * @param sal saldo de la cuenta (variable double)
     * @param tipo tipo de interes (variable double)
     */
    public CCuenta(String nom, String cue, double sal, double tipo)
    {
        nombre =nom;
        cuenta=cue;
        saldo=sal;
    }
    
    /**
     * Metodo asigna valor al titular
     * @param nom titular de la cuenta (cadena de caracteres)
     */
    public void asignarNombre(String nom)
    {
        setNombre(nom);
    }

    /**
     * @return nombre del titular
     */
    public String obtenerNombre()
    {
        return getNombre();
    }

    /**
     * @return  saldo de la cuenta
     */
    public double estado()
    {
        return getSaldo();
    }

    /**
     * Metodo ingresa una cantidad en cuenta
     * @param cantidad
     * @throws excepcion en ingresos de cantidades negativas
     */
    public void ingresar(double cantidad) throws Exception
    {
        if (cantidad<0)
            throw new Exception("No se puede ingresar una cantidad negativa");
        setSaldo(getSaldo() + cantidad);
    }
    /**
     * Metodo retira una cantidad de cuenta
     * @param cantidad
     * @throws excepcion si la cantidad a retirar es mayor que el saldo
     */
    public void retirar(double cantidad) throws Exception
    {
        if (cantidad <= 0)
            throw new Exception ("No se puede retirar una cantidad negativa");
        if (estado()< cantidad)
            throw new Exception ("No se hay suficiente saldo");
        setSaldo(getSaldo() - cantidad);
    }

    /**
     * @return numero de cuenta
     */
    public String obtenerCuenta()
    {
        return getCuenta();
    }

    /**
     * @return titular
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Metodo asigna valor al titular
     * @param nom titular de la cuenta (cadena de caracteres)
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return tipo de interes
     */
    public double getTipoInterés() {
        return tipoInterés;
    }

    /**
     * Metodo asigna valor al tipo de interes
     * @param tipoInterés 
     */
    public void setTipoInterés(double tipoInterés) {
        this.tipoInterés = tipoInterés;
    }

    /**
     * @return the cuenta
     */
    public String getCuenta() {
        return cuenta;
    }

    /**
     * @param cuenta the cuenta to set
     */
    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    /**
     * @return the saldo
     */
    public double getSaldo() {
        return saldo;
    }

    /**
     * @param saldo the saldo to set
     */
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
}
